>>
關(guān)節(jié)電機(jī)控制實(shí)時(shí)性與同步性CANopen協(xié)議救援機(jī)器人調(diào)試系統(tǒng)
關(guān)節(jié)電機(jī)控制實(shí)時(shí)性與同步性CANopen協(xié)議救援機(jī)器人調(diào)試系統(tǒng)
2013/11/27 10:16:34
在災(zāi)后救援現(xiàn)場(chǎng),為實(shí)現(xiàn)廢墟環(huán)境下的靈活移動(dòng),增強(qiáng)對(duì)各種復(fù)雜地形的適應(yīng)性,機(jī)器人需要具有多個(gè)關(guān)節(jié),并且各關(guān)節(jié)需要獨(dú)立運(yùn)動(dòng)。在搜索和救援過(guò)程中,為了能在諸如陡坡、樓梯、管道及廢墟等復(fù)雜環(huán)境下自由移動(dòng),要求機(jī)器人具備多種運(yùn)動(dòng)姿態(tài)并且能迅速改變姿態(tài)以滿足不同環(huán)境的需求。因此要求機(jī)器人的各關(guān)節(jié)具有良好的運(yùn)動(dòng)特性。
關(guān)節(jié)運(yùn)動(dòng)性能的好壞決定了機(jī)器人能否適應(yīng)在復(fù)雜環(huán)境中靈活運(yùn)動(dòng)的要求,是評(píng)價(jià)救援機(jī)器人性能的一個(gè)重要指標(biāo)。為了對(duì)機(jī)器人各關(guān)節(jié)運(yùn)動(dòng)性能進(jìn)行測(cè)評(píng),通過(guò)建立與機(jī)器人各關(guān)節(jié)控制器相連的運(yùn)動(dòng)控制主站,實(shí)現(xiàn)對(duì)關(guān)節(jié)控制器的組態(tài)與監(jiān)視,并通過(guò)分析機(jī)器人運(yùn)動(dòng)關(guān)節(jié)反饋回的數(shù)據(jù)優(yōu)化控制參數(shù),使得運(yùn)動(dòng)關(guān)節(jié)控制性能得以提高。針對(duì)運(yùn)動(dòng)控制中對(duì)各關(guān)節(jié)電機(jī)控制實(shí)時(shí)性與同步性以及結(jié)構(gòu)靈活性的要求,提出了一種基于CANopen協(xié)議的救援機(jī)器人調(diào)試系統(tǒng)。
CANopen為基于CAN的高層協(xié)議,是最初由BOSCH公司提出的一種串行數(shù)據(jù)通信總線。其具有可靠性高、抗干擾性強(qiáng)、開(kāi)發(fā)簡(jiǎn)單、造價(jià)低廉及其短幀傳輸和無(wú)破壞仲裁技術(shù)等特點(diǎn),應(yīng)用極為廣泛。CANopen是一個(gè)基于CAL的子協(xié)議,采用面向?qū)ο蟮乃枷朐O(shè)計(jì),具有很好的模塊化特性和很高的適應(yīng)性,通過(guò)擴(kuò)展可以適用于大量的應(yīng)用領(lǐng)域[1]。
1 方案設(shè)計(jì)
圖1所示為救援機(jī)器人調(diào)試系統(tǒng)框圖,包含電機(jī)控制器、基于CAN總線的網(wǎng)絡(luò)構(gòu)架和PC機(jī)上的調(diào)試系統(tǒng)。
電機(jī)驅(qū)動(dòng)器控制方法采用了三個(gè)基本控制環(huán),即位置環(huán)、轉(zhuǎn)速環(huán)和轉(zhuǎn)矩環(huán),各閉環(huán)采用PID算法控制,以便更加精確地控制電機(jī);同時(shí)建立了CANopen從站,通過(guò)CAN總線將各電機(jī)驅(qū)動(dòng)器和PC機(jī)上的調(diào)試軟件之間進(jìn)行數(shù)據(jù)交換;PC機(jī)則通過(guò)PCI-CAN卡實(shí)現(xiàn)了CANopen主站,從而方便對(duì)電機(jī)驅(qū)動(dòng)器上的電機(jī)數(shù)據(jù)進(jìn)行監(jiān)測(cè)和處理,并發(fā)送調(diào)試系統(tǒng)所發(fā)出的命令;采用NI公司的Labview調(diào)試系統(tǒng)上位機(jī)的程序編寫(xiě)。
2 CANopen從站設(shè)計(jì)
2.1 硬件設(shè)計(jì)
電機(jī)控制器用來(lái)對(duì)救援機(jī)器人關(guān)節(jié)進(jìn)行精確控制,是系統(tǒng)的關(guān)鍵??刂破鞑捎肕C56F8322微控制器作為控制核心,圖2為系統(tǒng)框圖。 電機(jī)控制器采集速度、電流、電壓三種參數(shù),各路采用PID閉環(huán)對(duì)電機(jī)進(jìn)行精確控制。CAN總線部分采用MC56F8322內(nèi)置MSCAN模塊,實(shí)現(xiàn)了現(xiàn)場(chǎng)總線控制系統(tǒng)的構(gòu)架;CAN總線收發(fā)器與控制器之間采用高速光電隔離器件6N137實(shí)現(xiàn)信號(hào)隔離;同時(shí)采用隔離型DC-DC變換器實(shí)現(xiàn)電源隔離,從而提高了現(xiàn)場(chǎng)抗干擾能力。除了以上主要部分以外,還有CPU監(jiān)控器、功能選擇開(kāi)關(guān)以及LED指示部分。LED分別用于電源指示、CAN接口當(dāng)前的收發(fā)狀態(tài)指示以及接口的通信故障(如總線關(guān)閉)指示。
2.2 軟件設(shè)計(jì)
CANopen從站移植了CANopen協(xié)議的開(kāi)源代碼CanFestival,該開(kāi)源代碼實(shí)現(xiàn)了CANopen協(xié)議的全部?jī)?nèi)容。在系統(tǒng)軟件設(shè)計(jì)時(shí),只需完成CAN的硬件設(shè)置、對(duì)象字典的定義以及canDispatch()函數(shù)的調(diào)用即可。
CANopen協(xié)議的核心部分是對(duì)象字典(Object Dictionary),通過(guò)對(duì)象字典對(duì)設(shè)備功能進(jìn)行描述。CANopen對(duì)象字典是一個(gè)有序的對(duì)象組,每個(gè)對(duì)象采用一個(gè)16位的索引來(lái)尋址,其范圍在0x1000~0x9FFF之間。為了允許訪問(wèn)數(shù)據(jù)結(jié)構(gòu)中的單個(gè)元素,定義了一個(gè)8 bit的子索引。CANopen設(shè)備的功能及特性用電子數(shù)據(jù)表單(EDS)的形式描述,實(shí)際的設(shè)備設(shè)置通過(guò)設(shè)備配置文件(DCF)進(jìn)行描述[1]。系統(tǒng)中電機(jī)的速度、電流、電壓是最重要的監(jiān)控信息,故將其定義在如下結(jié)構(gòu)體中:
typedef struct{
float voltage; //電壓
float Current; //電流
float velocity; //速度
}MotorPara;
本系統(tǒng)的電機(jī)控制器是以非標(biāo)準(zhǔn)設(shè)備設(shè)計(jì)的,根據(jù)對(duì)象字典結(jié)構(gòu)應(yīng)定義在制造商特定規(guī)范區(qū)域2000h~5FFFh之間。如表1所示。
3 CANopen主站設(shè)計(jì)
CANopen協(xié)議采用對(duì)象字典(OD)、電子數(shù)據(jù)文檔(EDS)等概念來(lái)描述設(shè)備和協(xié)議的相關(guān)信息,還規(guī)定了網(wǎng)絡(luò)管理(NMT)、服務(wù)數(shù)據(jù)對(duì)象(SDO)、過(guò)程數(shù)據(jù)對(duì)象PDO等多種通信機(jī)制[1]。在CANopen主站中,利用LabVIEW實(shí)現(xiàn)了NMT、SDO和PDO等功能。
3.1 NMT
NMT是提供對(duì)網(wǎng)絡(luò)上所有節(jié)點(diǎn)的狀態(tài)和行為的控制及監(jiān)測(cè)機(jī)制,在CANopen網(wǎng)絡(luò)中只允許一個(gè)NMT主節(jié)點(diǎn)處于激活狀態(tài)。只有NMT主節(jié)點(diǎn)能夠傳送NMT模塊控制報(bào)文,所有從設(shè)備必須支持NMT模塊控制服務(wù)[1]。
通過(guò)NMT消息可以對(duì)節(jié)點(diǎn)狀態(tài)進(jìn)行操作,LabVIEW中的具體實(shí)現(xiàn)如圖3所示。首先根據(jù)NMT消息格式通過(guò)數(shù)組函數(shù)將COB-ID、RTR、LEN、Node-ID及STATUS捆綁為U8數(shù)組,由于VISA僅支持U8字符串發(fā)送數(shù)據(jù),因此需要將U8數(shù)組轉(zhuǎn)換為U8字符串。然后調(diào)用VISA Write函數(shù)實(shí)現(xiàn)USB的數(shù)據(jù)發(fā)送。
3.2 SDO
SDO采用客戶(Client)/服務(wù)器(Server)通信方式, 通過(guò)索引和子索引向應(yīng)用程序提供訪問(wèn)對(duì)象字典的客戶接口。SDO是一種需要請(qǐng)求和應(yīng)答的點(diǎn)對(duì)點(diǎn)通信方式, 允許任意長(zhǎng)度的數(shù)據(jù)通信[1]。PC機(jī)上管理控制系統(tǒng)采用SDO方式對(duì)通用溫度和整流器控制器參數(shù)進(jìn)行配置, 完成控制器工藝參數(shù)的配置和控制模式的切換等。
CANopen協(xié)議規(guī)定SDO消息為8 B長(zhǎng)度,第1個(gè)字節(jié)為命令碼,第2、3個(gè)字節(jié)為索引,第4個(gè)字節(jié)為子索引,其余字節(jié)為消息所攜帶的數(shù)據(jù)。與NMT消息處理類似,SDO消息也是先通過(guò)數(shù)組函數(shù)根據(jù)SDO的消息格式創(chuàng)建一個(gè)U8數(shù)組,之后將數(shù)組轉(zhuǎn)換為U8字符串,最后通過(guò)USB發(fā)送。具體實(shí)現(xiàn)如圖4所示。
在CANopen通信機(jī)制中,服務(wù)器收到SDO信息后必將應(yīng)答,所以主站必須處理服務(wù)器返回的SDO消息。消息的處理過(guò)程為,首先根據(jù)COB-ID攜帶的功能碼判斷是否為SDO消息,然后判斷SDO消息中的命令字字節(jié),根據(jù)不同的命令字做出相應(yīng)的處理。
3.3 PDO
PDO采用生產(chǎn)者/消費(fèi)者通信方式, 數(shù)據(jù)從一個(gè)生產(chǎn)者傳到一個(gè)或多個(gè)消費(fèi)者,數(shù)據(jù)長(zhǎng)度限制在8個(gè)字節(jié)之內(nèi)。PDO 通信沒(méi)有協(xié)議規(guī)定, PDO報(bào)文的內(nèi)容是預(yù)定義或者在網(wǎng)絡(luò)啟動(dòng)時(shí)配置,因此多用于實(shí)時(shí)數(shù)據(jù)傳輸,工藝過(guò)程中工藝參數(shù)的傳送由PDO實(shí)現(xiàn)。CANopen中定義的PDO消息與正常的CAN幀格式相同, LabVIEW下實(shí)現(xiàn)方法可參考NMT及SDO。
調(diào)試系統(tǒng)上位機(jī)可以監(jiān)視在不同的PID參數(shù)控制時(shí)電機(jī)的響應(yīng)特性,從而為控制參數(shù)優(yōu)化提供直觀的依據(jù)。由此可見(jiàn),基于CANopen網(wǎng)絡(luò)的救援機(jī)器人調(diào)試系統(tǒng)成功地實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)關(guān)節(jié)各項(xiàng)參數(shù)的實(shí)時(shí)監(jiān)控和控制,并且可以對(duì)電機(jī)控制參數(shù)進(jìn)行在線配置,對(duì)救援機(jī)器人的穩(wěn)定運(yùn)行提供了極大的保障。
參考文獻(xiàn)
[1] Boterenbrood H.CANopen high-level protocol for CAN-bus[C].N IKHFF Internal Documentation,2000(9).
[2] 王俊波,胥布工.CANopen協(xié)議分析與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(6-2):104-106.
關(guān)節(jié)運(yùn)動(dòng)性能的好壞決定了機(jī)器人能否適應(yīng)在復(fù)雜環(huán)境中靈活運(yùn)動(dòng)的要求,是評(píng)價(jià)救援機(jī)器人性能的一個(gè)重要指標(biāo)。為了對(duì)機(jī)器人各關(guān)節(jié)運(yùn)動(dòng)性能進(jìn)行測(cè)評(píng),通過(guò)建立與機(jī)器人各關(guān)節(jié)控制器相連的運(yùn)動(dòng)控制主站,實(shí)現(xiàn)對(duì)關(guān)節(jié)控制器的組態(tài)與監(jiān)視,并通過(guò)分析機(jī)器人運(yùn)動(dòng)關(guān)節(jié)反饋回的數(shù)據(jù)優(yōu)化控制參數(shù),使得運(yùn)動(dòng)關(guān)節(jié)控制性能得以提高。針對(duì)運(yùn)動(dòng)控制中對(duì)各關(guān)節(jié)電機(jī)控制實(shí)時(shí)性與同步性以及結(jié)構(gòu)靈活性的要求,提出了一種基于CANopen協(xié)議的救援機(jī)器人調(diào)試系統(tǒng)。
CANopen為基于CAN的高層協(xié)議,是最初由BOSCH公司提出的一種串行數(shù)據(jù)通信總線。其具有可靠性高、抗干擾性強(qiáng)、開(kāi)發(fā)簡(jiǎn)單、造價(jià)低廉及其短幀傳輸和無(wú)破壞仲裁技術(shù)等特點(diǎn),應(yīng)用極為廣泛。CANopen是一個(gè)基于CAL的子協(xié)議,采用面向?qū)ο蟮乃枷朐O(shè)計(jì),具有很好的模塊化特性和很高的適應(yīng)性,通過(guò)擴(kuò)展可以適用于大量的應(yīng)用領(lǐng)域[1]。
1 方案設(shè)計(jì)
圖1所示為救援機(jī)器人調(diào)試系統(tǒng)框圖,包含電機(jī)控制器、基于CAN總線的網(wǎng)絡(luò)構(gòu)架和PC機(jī)上的調(diào)試系統(tǒng)。
電機(jī)驅(qū)動(dòng)器控制方法采用了三個(gè)基本控制環(huán),即位置環(huán)、轉(zhuǎn)速環(huán)和轉(zhuǎn)矩環(huán),各閉環(huán)采用PID算法控制,以便更加精確地控制電機(jī);同時(shí)建立了CANopen從站,通過(guò)CAN總線將各電機(jī)驅(qū)動(dòng)器和PC機(jī)上的調(diào)試軟件之間進(jìn)行數(shù)據(jù)交換;PC機(jī)則通過(guò)PCI-CAN卡實(shí)現(xiàn)了CANopen主站,從而方便對(duì)電機(jī)驅(qū)動(dòng)器上的電機(jī)數(shù)據(jù)進(jìn)行監(jiān)測(cè)和處理,并發(fā)送調(diào)試系統(tǒng)所發(fā)出的命令;采用NI公司的Labview調(diào)試系統(tǒng)上位機(jī)的程序編寫(xiě)。
2 CANopen從站設(shè)計(jì)
2.1 硬件設(shè)計(jì)
電機(jī)控制器用來(lái)對(duì)救援機(jī)器人關(guān)節(jié)進(jìn)行精確控制,是系統(tǒng)的關(guān)鍵??刂破鞑捎肕C56F8322微控制器作為控制核心,圖2為系統(tǒng)框圖。 電機(jī)控制器采集速度、電流、電壓三種參數(shù),各路采用PID閉環(huán)對(duì)電機(jī)進(jìn)行精確控制。CAN總線部分采用MC56F8322內(nèi)置MSCAN模塊,實(shí)現(xiàn)了現(xiàn)場(chǎng)總線控制系統(tǒng)的構(gòu)架;CAN總線收發(fā)器與控制器之間采用高速光電隔離器件6N137實(shí)現(xiàn)信號(hào)隔離;同時(shí)采用隔離型DC-DC變換器實(shí)現(xiàn)電源隔離,從而提高了現(xiàn)場(chǎng)抗干擾能力。除了以上主要部分以外,還有CPU監(jiān)控器、功能選擇開(kāi)關(guān)以及LED指示部分。LED分別用于電源指示、CAN接口當(dāng)前的收發(fā)狀態(tài)指示以及接口的通信故障(如總線關(guān)閉)指示。
2.2 軟件設(shè)計(jì)
CANopen從站移植了CANopen協(xié)議的開(kāi)源代碼CanFestival,該開(kāi)源代碼實(shí)現(xiàn)了CANopen協(xié)議的全部?jī)?nèi)容。在系統(tǒng)軟件設(shè)計(jì)時(shí),只需完成CAN的硬件設(shè)置、對(duì)象字典的定義以及canDispatch()函數(shù)的調(diào)用即可。
CANopen協(xié)議的核心部分是對(duì)象字典(Object Dictionary),通過(guò)對(duì)象字典對(duì)設(shè)備功能進(jìn)行描述。CANopen對(duì)象字典是一個(gè)有序的對(duì)象組,每個(gè)對(duì)象采用一個(gè)16位的索引來(lái)尋址,其范圍在0x1000~0x9FFF之間。為了允許訪問(wèn)數(shù)據(jù)結(jié)構(gòu)中的單個(gè)元素,定義了一個(gè)8 bit的子索引。CANopen設(shè)備的功能及特性用電子數(shù)據(jù)表單(EDS)的形式描述,實(shí)際的設(shè)備設(shè)置通過(guò)設(shè)備配置文件(DCF)進(jìn)行描述[1]。系統(tǒng)中電機(jī)的速度、電流、電壓是最重要的監(jiān)控信息,故將其定義在如下結(jié)構(gòu)體中:
typedef struct{
float voltage; //電壓
float Current; //電流
float velocity; //速度
}MotorPara;
本系統(tǒng)的電機(jī)控制器是以非標(biāo)準(zhǔn)設(shè)備設(shè)計(jì)的,根據(jù)對(duì)象字典結(jié)構(gòu)應(yīng)定義在制造商特定規(guī)范區(qū)域2000h~5FFFh之間。如表1所示。
3 CANopen主站設(shè)計(jì)
CANopen協(xié)議采用對(duì)象字典(OD)、電子數(shù)據(jù)文檔(EDS)等概念來(lái)描述設(shè)備和協(xié)議的相關(guān)信息,還規(guī)定了網(wǎng)絡(luò)管理(NMT)、服務(wù)數(shù)據(jù)對(duì)象(SDO)、過(guò)程數(shù)據(jù)對(duì)象PDO等多種通信機(jī)制[1]。在CANopen主站中,利用LabVIEW實(shí)現(xiàn)了NMT、SDO和PDO等功能。
3.1 NMT
NMT是提供對(duì)網(wǎng)絡(luò)上所有節(jié)點(diǎn)的狀態(tài)和行為的控制及監(jiān)測(cè)機(jī)制,在CANopen網(wǎng)絡(luò)中只允許一個(gè)NMT主節(jié)點(diǎn)處于激活狀態(tài)。只有NMT主節(jié)點(diǎn)能夠傳送NMT模塊控制報(bào)文,所有從設(shè)備必須支持NMT模塊控制服務(wù)[1]。
通過(guò)NMT消息可以對(duì)節(jié)點(diǎn)狀態(tài)進(jìn)行操作,LabVIEW中的具體實(shí)現(xiàn)如圖3所示。首先根據(jù)NMT消息格式通過(guò)數(shù)組函數(shù)將COB-ID、RTR、LEN、Node-ID及STATUS捆綁為U8數(shù)組,由于VISA僅支持U8字符串發(fā)送數(shù)據(jù),因此需要將U8數(shù)組轉(zhuǎn)換為U8字符串。然后調(diào)用VISA Write函數(shù)實(shí)現(xiàn)USB的數(shù)據(jù)發(fā)送。
3.2 SDO
SDO采用客戶(Client)/服務(wù)器(Server)通信方式, 通過(guò)索引和子索引向應(yīng)用程序提供訪問(wèn)對(duì)象字典的客戶接口。SDO是一種需要請(qǐng)求和應(yīng)答的點(diǎn)對(duì)點(diǎn)通信方式, 允許任意長(zhǎng)度的數(shù)據(jù)通信[1]。PC機(jī)上管理控制系統(tǒng)采用SDO方式對(duì)通用溫度和整流器控制器參數(shù)進(jìn)行配置, 完成控制器工藝參數(shù)的配置和控制模式的切換等。
CANopen協(xié)議規(guī)定SDO消息為8 B長(zhǎng)度,第1個(gè)字節(jié)為命令碼,第2、3個(gè)字節(jié)為索引,第4個(gè)字節(jié)為子索引,其余字節(jié)為消息所攜帶的數(shù)據(jù)。與NMT消息處理類似,SDO消息也是先通過(guò)數(shù)組函數(shù)根據(jù)SDO的消息格式創(chuàng)建一個(gè)U8數(shù)組,之后將數(shù)組轉(zhuǎn)換為U8字符串,最后通過(guò)USB發(fā)送。具體實(shí)現(xiàn)如圖4所示。
在CANopen通信機(jī)制中,服務(wù)器收到SDO信息后必將應(yīng)答,所以主站必須處理服務(wù)器返回的SDO消息。消息的處理過(guò)程為,首先根據(jù)COB-ID攜帶的功能碼判斷是否為SDO消息,然后判斷SDO消息中的命令字字節(jié),根據(jù)不同的命令字做出相應(yīng)的處理。
3.3 PDO
PDO采用生產(chǎn)者/消費(fèi)者通信方式, 數(shù)據(jù)從一個(gè)生產(chǎn)者傳到一個(gè)或多個(gè)消費(fèi)者,數(shù)據(jù)長(zhǎng)度限制在8個(gè)字節(jié)之內(nèi)。PDO 通信沒(méi)有協(xié)議規(guī)定, PDO報(bào)文的內(nèi)容是預(yù)定義或者在網(wǎng)絡(luò)啟動(dòng)時(shí)配置,因此多用于實(shí)時(shí)數(shù)據(jù)傳輸,工藝過(guò)程中工藝參數(shù)的傳送由PDO實(shí)現(xiàn)。CANopen中定義的PDO消息與正常的CAN幀格式相同, LabVIEW下實(shí)現(xiàn)方法可參考NMT及SDO。
調(diào)試系統(tǒng)上位機(jī)可以監(jiān)視在不同的PID參數(shù)控制時(shí)電機(jī)的響應(yīng)特性,從而為控制參數(shù)優(yōu)化提供直觀的依據(jù)。由此可見(jiàn),基于CANopen網(wǎng)絡(luò)的救援機(jī)器人調(diào)試系統(tǒng)成功地實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)關(guān)節(jié)各項(xiàng)參數(shù)的實(shí)時(shí)監(jiān)控和控制,并且可以對(duì)電機(jī)控制參數(shù)進(jìn)行在線配置,對(duì)救援機(jī)器人的穩(wěn)定運(yùn)行提供了極大的保障。
參考文獻(xiàn)
[1] Boterenbrood H.CANopen high-level protocol for CAN-bus[C].N IKHFF Internal Documentation,2000(9).
[2] 王俊波,胥布工.CANopen協(xié)議分析與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(6-2):104-106.
提交
查看更多評(píng)論
其他資訊
超越傳統(tǒng)直覺(jué),MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型
新大陸自動(dòng)識(shí)別精彩亮相2024華南國(guó)際工業(yè)博覽會(huì)
派拓網(wǎng)絡(luò)被Forrester評(píng)為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲(chǔ)強(qiáng)基 | ??低晭?lái)精彩主題演講
展會(huì)|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會(huì)